home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Zoom 2
/
Zoom - Release 2 (1996)(Active Software)[!].iso
/
music
/
utilities
/
sonicdrumkit
/
sonic_drum_kit_source.amos
/
sonic_drum_kit_source.amosSourceCode
Wrap
AMOS Source Code
|
1978-01-16
|
72KB
|
3,391 lines
'
'*********************************
'
' SONIC DRUM KIT
' --------------
'
' VERSION 2
'
' � MALCOLM LAVERY 1994
'
'
'THIS SOURCE CODE HAS BEEN GIVEN
'TO AMOSZINE DISK MAG BY MALCOLM
'LAVERY, IT IS NOT TO BE RESOLD!.
'
'PLEASE FEEL FREE TO SEE HOW I DID
'CERTAIN TASKS, AND TO USE ANY OF
'MY PROCEDURES FROM WITHIN THIS
'PROGRAM, PLEASE GIVE ME SOME CREDIT
'IF YOU DO USE ANYTHING, THANK!!!
'
'*********************************
'
'*********************************
' SET VARIABLES
'*********************************
'
VERSION$="V2.0"
_TEMPO=25
METRO=130
METRO2=160-METRO
_VOLUME=51
_TUNE=25
_SAMPLE=1
_PLAY_FLAG=0
_PAUSE_FLAG=0
TRACK_1=1
TRACK_2=1
TRACK_3=1
TRACK_4=1
MEM_1=0
MEM_2=0
MEM_3=0
MEM_4=0
MEM_5=0
MEM_1_1=0
MEM_2_2=0
MEM_3_3=0
MEM_4_4=0
MEM_5_5=0
MEM_FLAG1=0
MEM_FLAG2=0
MEM_FLAG3=0
MEM_FLAG4=0
MEM_FLAG5=0
LAST_EDITED=0
LAST_POS=0
_V_1=51
_V_2=51
_V_3=51
_V_4=51
FILE$="NONE"
NUMBER$=""
POSITION=0
STORE_X1=0
STORE_X2=0
_LOOP_FLAG=0
_FILTER_FLAG=1
METRO_FLAG=0
_REPEAT_FLAG=0
METRO_SOUND=3
_SCROLL_FLAG=1
Volume 63
Dim PADS(6),KEYS$(6)
'
'*********************************
' MAKE DEFAULT DRUM PADS & KEYS
'*********************************
'
PADS(1)=2
PADS(2)=3
PADS(3)=4
PADS(4)=5
PADS(5)=6
PADS(6)=7
'
KEYS$(1)="1"
KEYS$(2)="4"
KEYS$(3)="8"
KEYS$(4)="6"
KEYS$(5)="3"
KEYS$(6)="5"
'
'*********************************
' MAKE EM GLOBEL TROTTERS
'*********************************
'
Global SCORE_POS,_TEMPO,_SAMPLE,_PLAY_FLAG,_PAUSE_FLAG,FILE$,NUMBER$,_LOOP_FLAG,VERSION$,PADS(),KEYS$(),METRO,METRO_FLAG,METRO_SOUND,METRO2
Global TRACK_1,TRACK_2,TRACK_3,TRACK_4,POSITION,_VOLUME,STORE_X1,STORE_X2,_FILTER_FLAG,_V_1,_V_2,_V_3,_V_4,_TUNE,_REPEAT_FLAG
Global MEM_1,MEM_2,MEM_3,MEM_4,MEM_5,MEM_FLAG1,MEM_FLAG2,MEM_FLAG3,MEM_FLAG4,MEM_FLAG5,MEM_1_1,MEM_2_2,MEM_3_3,MEM_4_4,MEM_5_5,LAST_EDITED,LAST_POS
Global _SCROLL_FLAG
'
'*********************************
' LOAD A DRUM KIT (ICONS+SAMPLES)
'*********************************
'
'***** FLOPPY DISK *****
'
Load "SDK:drum_kits/drum_kit_1.kit"
'
'**** HARD DISK *****
'
'''Load "drum_kits/drum_kit_1.kit"
'
'*********************************
' RESERVE DRUM SCORE BANK
'*********************************
'
Reserve As Chip Work 8,152
Poke(Start(8)),_TEMPO
Poke(Start(8)+1),_VOLUME
Poke(Start(8)+2),_LOOP_FLAG
SCORE_POS=Start(8)+4
MEM_1=SCORE_POS
MEM_2=SCORE_POS
MEM_3=SCORE_POS
MEM_4=SCORE_POS
MEM_5=SCORE_POS
LAST_EDITED=SCORE_POS
'*********************************
' SET UP SCREENS
'*********************************
'
INIT_DISPLAY
'
'*********************************
' MAIN LOOP
'*********************************
'
Screen 0
_CENTRE_TEXT[10,"SCORE:"+FILE$]
Wait Vbl
'
_UPDATE[SCORE_POS]
MESSAGE[" The credits "]
_ABOUT
'
'
'
Do
IN_SCREEN=Scin(X Mouse,Y Mouse)
On IN_SCREEN Proc DUMMY,_GET_SAMPLE,_EDIT,MENU
Loop
'
'
Procedure INIT_DISPLAY
'
_BACK_DISPLAY[78]
_SAMPLE_DISPLAY[50]
_SCORE_DISPLAY[78]
_MENU_DISPLAY[180]
Limit Mouse 0,0 To 640,512
'
Screen 2
Fade 2,$0,$FFF,$333,$BBB,$88F,$F0,$F00,,
Wait 30
Screen 3
Fade 2,$0,$FFF,$333,$BBB,$88F,$F0,$F00,,
Wait 30
Screen 4
Fade 2,$0,$FFF,$333,$BBB,$88F,$F0,$F00,,
Wait 30
'
End Proc
Procedure _BACK_DISPLAY[YPOSITION]
'
Screen Open 0,640,100,8,Lowres
Curs Off : Flash Off : Cls 0
Palette $0,$0,$0,$0,$0,$0,$0,$0,$0,
Screen Display 0,,YPOSITION,,
'
_3D_DISPLAY[0,0,639,99,1,3]
_3D_DISPLAY[30,15,578,65,0,3]
_3D_DISPLAY[280,85,60,10,0,3]
Screen 0
_3D_METER[30,85,240,10,Length(8)/72,6,4]
_ZEROS[POSITION]
Ink 0,3
Text 286,93,NUMBER$
'
End Proc
Procedure _SAMPLE_DISPLAY[YPOSITION]
'
Screen Open 2,640,30,8,Hires
Curs Off : Flash Off : Cls 0
Get Palette 0
Screen Display 2,,YPOSITION,,
'
_3D_DISPLAY[0,0,639,10,1,3]
'
Ink 0,3
_CENTRE_TEXT[8,"SONIC DRUM KIT "+VERSION$+" BY MALCOLM LAVERY �1994"]
'
_3D_DISPLAY[0,11,639,15,1,3]
'
I=2
For X=0 To 640 Step 32
If I<Length(2)/2+2
If I=2
Paste Icon X,11,I+Length(2)/2
Else
Paste Icon X,11,I
End If
End If
Inc I
Next X
'
End Proc
Procedure _SCORE_DISPLAY[YPOSITION]
'
Screen Open 3,640,100,8,Hires
Curs Off : Flash Off : Cls 0
Get Palette 0
Screen Display 3,,YPOSITION,,
'
_3D_DISPLAY[0,0,639,99,1,3]
_3D_DISPLAY[30,15,578,65,0,3]
'
_CENTRE_TEXT[10,"SCORE:"+FILE$]
'
Ink 0,3
Text 7,26,"T1"
Text 7,42,"T2"
Text 7,58,"T3"
Text 7,74,"T4"
'
Autoback 0
Bob Update Off
Double Buffer
'
End Proc
Procedure _UPDATE[SCORE_POS]
'
Screen 0
EXTRA=0
For X=32 To 600 Step 32
For Y=16 To 70 Step 16
IMAGE=Peek(SCORE_POS+EXTRA)
If IMAGE>0 and IMAGE<Length(2)/2+1
Paste Icon X,Y,IMAGE+Length(2)/2+1
Else
If SCORE_POS+EXTRA>Start(8)+Length(8)-77
Ink 4
Bar X,Y To X+31,Y+15
Else
Paste Icon X,Y,1
End If
Poke(SCORE_POS+EXTRA),0
End If
Inc EXTRA
Next Y
Next X
'
If TRACK_1=0
_DARKEN[0,32,16,606,31]
End If
'
If TRACK_2=0
_DARKEN[0,32,32,606,47]
End If
'
If TRACK_3=0
_DARKEN[0,32,48,606,63]
End If
'
If TRACK_4=0
_DARKEN[0,32,64,606,79]
End If
'
_ZEROS[POSITION]
Ink 0,3
Text 286,93,NUMBER$
Screen Copy 0,30,0,610,100 To Logic(3),30,0
Screen Swap
Wait Vbl
'
End Proc
Procedure _MENU_DISPLAY[YPOSITION]
'
Screen Open 4,640,120,8,Hires
Curs Off : Flash Off : Cls 0
Get Palette 0
Screen Display 4,,YPOSITION,,
'
_REDRAW_MENU
'
End Proc
Procedure _REDRAW_MENU
'
Screen 4
'
_3D_DISPLAY[0,0,639,15,1,3]
_3D_DISPLAY[0,16,100,49,1,3]
_3D_DISPLAY[101,16,68,49,1,3]
_3D_DISPLAY[105,19,60,10,0,3]
_3D_DISPLAY[105,41,60,10,0,3]
_3D_DISPLAY[170,16,349,49,1,3]
_3D_DISPLAY[520,16,140,49,1,3]
'
'
_3D_DISPLAY[0,66,639,16,1,3]
_3D_DISPLAY[4,69,630,10,0,4]
MESSAGE["Waiting for user input!"]
'
'
Reserve Zone 100
'
_3D_BUTTON[1,140,2,60,10,0,"STOP",4,0]
_3D_BUTTON[2,210,2,60,10,1,"PAUSE",3,0]
_3D_BUTTON[3,280,2,60,10,1,"REW",3,0]
_3D_BUTTON[4,350,2,60,10,1,"PLAY",3,0]
_3D_BUTTON[5,420,2,60,10,1,"FRW",3,0]
'
'***** TRACK ACTIVE BUTTONS *****
'
If TRACK_1=0
_3D_BUTTON[6,20,19,10,10,1,"X",3,0]
End If
'
If TRACK_1=1
_3D_BUTTON[6,20,19,10,10,0,"",4,0]
End If
'
If TRACK_2=0
_3D_BUTTON[7,20,30,10,10,1,"X",3,0]
End If
'
If TRACK_2=1
_3D_BUTTON[7,20,30,10,10,0,"",4,0]
End If
'
If TRACK_3=0
_3D_BUTTON[8,20,41,10,10,1,"X",3,0]
End If
'
If TRACK_3=1
_3D_BUTTON[8,20,41,10,10,0,"",4,0]
End If
'
If TRACK_4=0
_3D_BUTTON[9,20,52,10,10,1,"X",3,0]
End If
'
If TRACK_4=1
_3D_BUTTON[9,20,52,10,10,0,"",4,0]
End If
'
'***** TEMPO/TUNE SLIDERS *****
'
_HOR_SLIDER_TEMPO[10,106,31,60,8,0,4,3,_TEMPO,1]
_TUNE[12,106,54,60,8,0,4,3,_TUNE,1]
'
'***** MAIN BUTTONS *****
'
_3D_BUTTON[14,2,2,60,10,1,"START",3,0]
_3D_BUTTON[15,71,2,60,10,1,"END",3,0]
_3D_BUTTON[16,488,2,45,10,1,"SWAP",3,0]
'
'***** LOOP STATUS *****
'
If _LOOP_FLAG=0
_3D_BUTTON[17,541,2,45,10,1,"LOOP",3,0]
End If
'
If _LOOP_FLAG=1
_3D_BUTTON[17,541,2,45,10,0,"ON",4,0]
End If
'
_3D_BUTTON[18,174,18,60,10,1,"CUT",3,0]
_3D_BUTTON[19,244,18,60,10,1,"COPY",3,0]
_3D_BUTTON[20,314,18,60,10,1,"PASTE",3,0]
_3D_BUTTON[21,384,18,60,10,1,"C BLOCK",3,0]
_3D_BUTTON[22,454,18,60,10,1,"C SCORE",3,0]
_3D_BUTTON[23,174,34,60,10,1,"L KIT",3,0]
_3D_BUTTON[24,174,50,60,10,1,"ADD",3,0]
_3D_BUTTON[25,244,34,60,10,1,"L SCORE",3,0]
_3D_BUTTON[26,244,50,60,10,1,"S SCORE",3,0]
_3D_BUTTON[27,314,34,60,10,1,"L MOD",3,0]
_3D_BUTTON[28,314,50,60,10,1,"S MOD",3,0]
_3D_BUTTON[29,384,34,60,10,1,"L CUT",3,0]
_3D_BUTTON[30,384,50,60,10,1,"S CUT",3,0]
_3D_BUTTON[31,454,34,60,10,1,"PADS",3,0]
'
'
If _SCROLL_FLAG=0
_3D_BUTTON[32,454,50,60,10,1,"SCR OFF",3,0]
End If
'
If _SCROLL_FLAG=1
_3D_BUTTON[32,454,50,60,10,0,"SCR ON",4,0]
End If
'
'
'***** FILTER STATUS *****
'
If _FILTER_FLAG=0
_3D_BUTTON[33,593,2,45,10,1,"FILT",3,0]
Led On
End If
'
If _FILTER_FLAG=1
_3D_BUTTON[33,593,2,45,10,0,"ON",4,0]
Led Off
End If
'
'***** TRACK VOLUME SLIDERS *****
'
_VOL_1[34,35,20,60,8,0,4,3,_V_1,1]
_VOL_2[35,35,31,60,8,0,4,3,_V_2,1]
_VOL_3[36,35,42,60,8,0,4,3,_V_3,1]
_VOL_3[37,35,53,60,8,0,4,3,_V_4,1]
'
'***** SCORE MEMORIES *****
'
_3D_BUTTON[38,523,18,20,10,1,"M1",3,0]
_3D_BUTTON[39,546,18,20,10,1,"M2",3,0]
_3D_BUTTON[40,570,18,20,10,1,"M3",3,0]
_3D_BUTTON[41,594,18,20,10,1,"M4",3,0]
_3D_BUTTON[42,618,18,20,10,1,"M5",3,0]
'
_3D_BUTTON[43,523,34,55,10,1,"STORE",3,0]
_3D_BUTTON[44,582,34,55,10,1,"GOTO",3,0]
_3D_BUTTON[45,523,50,115,10,1,"LAST EDITED",3,0]
'
'
'
Ink 0,3
Text 2,27,"T1"
Text 2,38,"T2"
Text 2,49,"T3"
Text 2,60,"T4"
'
Ink 0,3
Text 108,27,"-TEMPO+"
Text 112,49,"-TUNE+"
'
End Proc
Procedure _JAM
'
Screen 4
Fade 1
Wait 15
'
Screen 4
'
Reserve Zone 50
'
_3D_DISPLAY[0,0,639,15,1,3]
_3D_DISPLAY[2,2,168,11,1,3]
_3D_DISPLAY[174,2,270,11,1,3]
_3D_DISPLAY[448,2,189,11,1,3]
_3D_DISPLAY[0,16,639,120,1,3]
_3D_DISPLAY[174,18,270,100,1,3]
_3D_DISPLAY[2,18,168,100,1,3]
_3D_DISPLAY[448,18,189,32,1,3]
_3D_DISPLAY[448,52,189,29,1,3]
'
_3D_DISPLAY[448,83,189,35,1,3]
'
Ink 0,3
Text 30,10,"PAD ASSIGNMENT"
Text 212,10,"USER DEFINABLE DRUM PADS"
Text 490,10,"USER CONTROLS"
'
'*****************************************
' SET UP DRUM PAD BUTTONS
'*****************************************
'
_3D_HEX_BUTTON[20,226,46,1,3]
_3D_HEX_BUTTON[21,290,30,1,3]
_3D_HEX_BUTTON[22,354,46,1,3]
_3D_HEX_BUTTON[23,290,62,1,3]
_3D_HEX_BUTTON[24,226,78,1,3]
_3D_HEX_BUTTON[25,354,78,1,3]
'
Ink 0,3
Text 200,108,"1"
Text 200,51,"2"
Text 306,26,"3"
Text 410,51,"4"
Text 410,108,"5"
Text 306,104,"6"
'
'*****************************************
' SET UP OTHER BUTTONS
'*****************************************
'
'
_3D_BUTTON[28,45,21,82,15,1,"PAD 1",3,0]
_3D_BUTTON[29,45,37,82,15,1,"PAD 2",3,0]
_3D_BUTTON[30,45,53,82,15,1,"PAD 3",3,0]
_3D_BUTTON[31,45,69,82,15,1,"PAD 4",3,0]
_3D_BUTTON[32,45,85,82,15,1,"PAD 5",3,0]
_3D_BUTTON[33,45,101,82,15,1,"PAD 6",3,0]
'
If METRO_SOUND=0 : METRO_SOUND=1 : End If
If METRO_SOUND>Length(2)/2
Paste Icon 454,21,2
METRO_SOUND=1
Else
Paste Icon 454,21,METRO_SOUND+1
End If
'
_3D_BUTTON[34,490,21,108,15,1,"METRONOME",3,0]
'
If METRO_FLAG=0
_3D_BUTTON[35,603,21,29,15,1,"OFF",3,0]
End If
'
If METRO_FLAG=1
_3D_BUTTON[35,603,21,29,15,0,"ON",4,0]
End If
'
_HOR_SLIDER_METRO[40,453,39,180,8,0,4,3,METRO,1]
'
If _REPEAT_FLAG=0
_3D_BUTTON[41,454,55,178,10,1,"PAD REPEAT OFF",3,0]
End If
'
If _REPEAT_FLAG=1
_3D_BUTTON[41,454,55,178,10,0,"PAD REPEAT ON",4,0]
End If
'
_3D_BUTTON[27,454,68,178,10,1,"SCORE EDITOR MENU",3,0]
'
'*****************************************
' SET UP DRUM PAD ASSIGNS
'*****************************************
'
For Y=1 To 6
'
If PADS(Y)=0
PADS(Y)=1
End If
Paste Icon 10,5+(Y*16),PADS(Y)
Paste Icon 131,5+(Y*16),1
Ink 0,3
Text 142,15+(Y*16),KEYS$(Y)
'
Next Y
'
Screen 4
Fade 1 To 2
Wait 15
'
Timer=0
'
Repeat
'
M=Mouse Zone
'
If _REPEAT_FLAG=1
K=Mouse Key
Else
K=Mouse Click
End If
'
A$=Upper$(Inkey$)
'
'*****************************************
' TEST DRUM PAD BUTTONS
'*****************************************
'
If K=1 and M=20 and PADS(2)=1
ALERT_1
End If
'
If K=1 and M=21 and PADS(3)=1
ALERT_1
End If
'
If K=1 and M=22 and PADS(4)=1
ALERT_1
End If
'
If K=1 and M=23 and PADS(6)=1
ALERT_1
End If
'
If K=1 and M=24 and PADS(1)=1
ALERT_1
End If
'
If K=1 and M=25 and PADS(5)=1
ALERT_1
End If
'
'
If(K=1 and M=20 or A$=KEYS$(2)) and PADS(2)>1
_3D_HEX_BUTTON[20,226,46,0,4]
Sam Play %1000,PADS(2)-1,14000
Wait 4
_3D_HEX_BUTTON[20,226,46,1,3]
End If
'
If(K=1 and M=21 or A$=KEYS$(3)) and PADS(3)>1
_3D_HEX_BUTTON[21,290,30,0,4]
Sam Play %100,PADS(3)-1,14000
Wait 4
_3D_HEX_BUTTON[21,290,30,1,3]
End If
'
If(K=1 and M=22 or A$=KEYS$(4)) and PADS(4)>1
_3D_HEX_BUTTON[22,354,46,0,4]
Sam Play %10,PADS(4)-1,14000
Wait 4
_3D_HEX_BUTTON[22,354,46,1,3]
End If
'
If(K=1 and M=23 or A$=KEYS$(6)) and PADS(6)>1
_3D_HEX_BUTTON[23,290,62,0,4]
Sam Play %100,PADS(6)-1,14000
Wait 4
_3D_HEX_BUTTON[23,290,62,1,3]
End If
'
If(K=1 and M=24 or A$=KEYS$(1)) and PADS(1)>1
_3D_HEX_BUTTON[24,226,78,0,4]
Sam Play %1000,PADS(1)-1,14000
Wait 4
_3D_HEX_BUTTON[24,226,78,1,3]
End If
'
If(K=1 and M=25 or A$=KEYS$(5)) and PADS(5)>1
_3D_HEX_BUTTON[25,354,78,0,4]
Sam Play %10,PADS(5)-1,14000
Wait 4
_3D_HEX_BUTTON[25,354,78,1,3]
End If
'
'*****************************************
' TEST OTHER BUTTONS
'*****************************************
'
If Mouse Key=1 and M=28
_3D_BUTTON[28,45,21,82,15,0,"PAD 1",4,0]
_ASSIGN[1]
_3D_BUTTON[28,45,21,82,15,1,"PAD 1",3,0]
End If
'
If Mouse Key=1 and M=29
_3D_BUTTON[29,45,37,82,15,0,"PAD 2",4,0]
_ASSIGN[2]
_3D_BUTTON[29,45,37,82,15,1,"PAD 2",3,0]
End If
'
If Mouse Key=1 and M=30
_3D_BUTTON[30,45,53,82,15,0,"PAD 3",4,0]
_ASSIGN[3]
_3D_BUTTON[30,45,53,82,15,1,"PAD 3",3,0]
End If
'
If Mouse Key=1 and M=31
_3D_BUTTON[31,45,69,82,15,0,"PAD 4",4,0]
_ASSIGN[4]
_3D_BUTTON[31,45,69,82,15,1,"PAD 4",3,0]
End If
'
If Mouse Key=1 and M=32
_3D_BUTTON[32,45,85,82,15,0,"PAD 5",4,0]
_ASSIGN[5]
_3D_BUTTON[32,45,85,82,15,1,"PAD 5",3,0]
End If
'
If Mouse Key=1 and M=33
_3D_BUTTON[33,45,101,82,15,0,"PAD 6",4,0]
_ASSIGN[6]
_3D_BUTTON[33,45,101,82,15,1,"PAD 6",3,0]
End If
'
If Mouse Key=1 and M=35
_METRONOME
Wait 30
End If
'
If Mouse Key=1 and M=34
_3D_BUTTON[34,490,21,108,15,0,"METRONOME",4,0]
_ASSIGN_METRO
_3D_BUTTON[34,490,21,108,15,1,"METRONOME",3,0]
End If
'
If METRO_FLAG=1 and Timer>METRO2
Sam Play %1,METRO_SOUND,14000
Timer=0
End If
'
If Mouse Key=1 and M=40
METRO2=160-METRO
_HOR_SLIDER_METRO[40,453,39,180,8,0,4,3,METRO,1]
End If
'
If Mouse Key=1 and M=41
PAD_REPEAT
Wait 30
End If
'
Until Mouse Key=1 and M=27
'
'*****************************************
' REDRAW MAIN MENU
'*****************************************
'
_3D_BUTTON[27,454,68,178,10,0,"SCORE EDITOR MENU",4,0]
Screen 4
Fade 1
Wait 15
Cls 0
'
_REDRAW_MENU
'
Screen 4
Fade 1 To 2
Wait 15
'
End Proc
Procedure _ASSIGN[PAD]
'
'
'*****************************************
' GET SAMPLE FROM RACK
'*****************************************
'
Screen 0
'
_3D_DISPLAY[160,20,320,50,1,3]
'
_CENTRE_TEXT2[30,"PICK A SAMPLE TO ASSIGN"]
'
Screen Copy 0,30,15,610,100 To Logic(3),30,15
Screen Swap
Wait Vbl
'
Wait 5
'
Screen 2
'
Repeat
X=X Screen(2,X Mouse)/32
Y=Y Screen(2,Y Mouse+5)/16
Until Mouse Key=1 and Scin(X Mouse,Y Mouse)=2 and X<Length(2)/2 and Y>0
'
_3D_DISPLAY[0,11,639,15,1,3]
I=2
For XP=0 To 640 Step 32
If I<Length(2)/2+2
Paste Icon XP,11,I
End If
Inc I
Next XP
Paste Icon X*32,Y*16-5,X+Length(2)/2+2
_SAMPLE=X+1
Sam Play %1000,_SAMPLE,14000
' '
Screen 0
'
_3D_DISPLAY[160,20,320,50,1,3]
'
_CENTRE_TEXT2[30,"ASSIGNED SAMPLE"]
'
Paste Icon 260,38,_SAMPLE+1
PADS(PAD)=_SAMPLE+1
'
Text 300,50," TO PAD "+Mid$(Str$(PAD),2)
'
Screen Copy 0,30,15,610,100 To Logic(3),30,15
Screen Swap
Wait Vbl
'
'*****************************************
' REDRAW PAD SAMPLES
'*****************************************
'
Screen 4
'
For Y=1 To 6
If PADS(Y)=0
PADS(Y)=1
End If
Paste Icon 10,5+(Y*16),PADS(Y)
Next Y
'
Wait 80
'
'*****************************************
' ASSIGN KEY TO PAD
'*****************************************
'
Screen 0
'
_3D_DISPLAY[160,20,320,50,1,3]
'
_CENTRE_TEXT2[30,"PRESS A KEY TO ASSIGN"]
'
Screen Copy 0,30,15,610,100 To Logic(3),30,15
Screen Swap
Wait Vbl
'
Repeat
'
A$=Upper$(Inkey$)
'
Until A$<>""
'
'
Screen 0
'
_3D_DISPLAY[160,20,320,50,1,3]
'
_CENTRE_TEXT2[30,"ASSIGNED KEY"]
'
KEYS$(PAD)=A$
Sam Play %1000,_SAMPLE,14000
'
Text 278,50,KEYS$(PAD)+" TO PAD "+Mid$(Str$(PAD),2)
'
Screen Copy 0,30,15,610,100 To Logic(3),30,15
Screen Swap
Wait Vbl
'
'*****************************************
' REDRAW PAD SAMPLES
'*****************************************
'
Screen 4
'
For Y=1 To 6
'
Paste Icon 131,5+(Y*16),1
Ink 0,3
Text 142,15+(Y*16),KEYS$(Y)
'
Next Y
'
Wait 80
'
_UPDATE[SCORE_POS]
'
Screen 4
'
End Proc
Procedure _METRONOME
'
METRO_FLAG=1-METRO_FLAG
'
If METRO_FLAG=0
_3D_BUTTON[35,603,21,29,15,1,"OFF",3,0]
End If
'
If METRO_FLAG=1
_3D_BUTTON[35,603,21,29,15,0,"ON",4,0]
Timer=0
End If
'
End Proc
Procedure _ASSIGN_METRO
'
'
'*****************************************
' GET SAMPLE FROM RACK
'*****************************************
'
Screen 0
'
_3D_DISPLAY[160,20,320,50,1,3]
'
_CENTRE_TEXT2[30,"PICK A SAMPLE TO ASSIGN"]
'
Screen Copy 0,30,15,610,100 To Logic(3),30,15
Screen Swap
Wait Vbl
'
Wait 5
'
Screen 2
'
Repeat
X=X Screen(2,X Mouse)/32
Y=Y Screen(2,Y Mouse+5)/16
Until Mouse Key=1 and Scin(X Mouse,Y Mouse)=2 and X<Length(2)/2 and Y>0
'
_3D_DISPLAY[0,11,639,15,1,3]
I=2
For XP=0 To 640 Step 32
If I<Length(2)/2+2
Paste Icon XP,11,I
End If
Inc I
Next XP
Paste Icon X*32,Y*16-5,X+Length(2)/2+2
_SAMPLE=X+1
Sam Play %1000,_SAMPLE,14000
' '
Screen 0
'
_3D_DISPLAY[160,20,320,50,1,3]
'
_CENTRE_TEXT2[30,"CHANGING METRONOME"]
_CENTRE_TEXT2[40,"SAMPLE TO"]
'
'
METRO_SOUND=_SAMPLE
Paste Icon 305,48,METRO_SOUND+1
'
Screen Copy 0,30,15,610,100 To Logic(3),30,15
Screen Swap
Wait Vbl
'
Screen 4
Paste Icon 454,21,METRO_SOUND+1
Wait 80
'
_UPDATE[SCORE_POS]
Screen 4
'
End Proc
Procedure PAD_REPEAT
'
_REPEAT_FLAG=1-_REPEAT_FLAG
'
If _REPEAT_FLAG=0
_3D_BUTTON[41,454,55,178,10,1,"PAD REPEAT OFF",3,0]
End If
'
If _REPEAT_FLAG=1
_3D_BUTTON[41,454,55,178,10,0,"PAD REPEAT ON",4,0]
End If
'
End Proc
Procedure _SCROLL
'
_SCROLL_FLAG=1-_SCROLL_FLAG
'
If _SCROLL_FLAG=0
_3D_BUTTON[32,454,50,60,10,1,"SCR OFF",3,0]
MESSAGE[" Score scroll is now inactive! "]
End If
'
If _SCROLL_FLAG=1
_3D_BUTTON[32,454,50,60,10,0,"SCR ON",4,0]
MESSAGE[" Score scroll is now active! "]
End If
'
End Proc
Procedure ALERT_1
'
Bell
'
Screen 0
'
_3D_DISPLAY[160,20,320,50,1,3]
'
_CENTRE_TEXT2[45,"PAD NOT ASSIGNED!"]
'
Screen Copy 0,30,15,610,100 To Logic(3),30,15
Screen Swap
Wait Vbl
'
Wait 100
_UPDATE[SCORE_POS]
Screen 4
'
End Proc
Procedure _3D_HEX_BUTTON[_ZONENUMBER,X,Y,IN_OUT,_FILL]
'
If IN_OUT=0
HILIGHT=2
SHADOW=1
End If
'
If IN_OUT=1
HILIGHT=1
SHADOW=2
End If
'
Ink HILIGHT
Polyline X+40,Y To X,Y To X-20,Y+15 To X,Y+30
'
Ink SHADOW
Polyline X,Y+30 To X+40,Y+30 To X+60,Y+15 To X+40,Y
'
Ink _FILL
Polygon X+39,Y+1 To X,Y+1 To X-18,Y+15 To X+1,Y+29 To X+39,Y+29 To X+58,Y+15 To X+39,Y
'
Set Zone _ZONENUMBER,X-20,Y To X+60,Y+30
'
End Proc
Procedure _3D_DISPLAY[X,Y,WIDTH,HEIGHT,IN_OUT,_FILL]
'
'
'
If IN_OUT=0
HILIGHT=2
SHADOW=1
End If
'
'
If IN_OUT=1
HILIGHT=1
SHADOW=2
End If
'
'
Ink HILIGHT
Draw X,Y To X+WIDTH,Y
Draw X,Y To X,Y+HEIGHT
'
Ink SHADOW
Draw X+WIDTH,Y To X+WIDTH,Y+HEIGHT
Draw X+WIDTH,Y+HEIGHT To X,Y+HEIGHT
'
Ink _FILL
Bar X+1,Y+1 To X+WIDTH-1,Y+HEIGHT-1
'
'
End Proc
Procedure _3D_BUTTON[_ZONENUMBER,X,Y,WIDTH,HEIGHT,IN_OUT,TEX$,_FILL,_INK]
'
'
'
LE=Text Length(TEX$)
X_TEXT=X+WIDTH/2
Y_TEXT=Y+HEIGHT/2+3
'
'
If IN_OUT=0
HILIGHT=2
SHADOW=1
End If
'
'
If IN_OUT=1
HILIGHT=1
SHADOW=2
End If
'
'
Ink HILIGHT
Draw X,Y To X+WIDTH,Y
Draw X,Y To X,Y+HEIGHT
'
Ink SHADOW
Draw X+WIDTH,Y To X+WIDTH,Y+HEIGHT
Draw X+WIDTH,Y+HEIGHT To X,Y+HEIGHT
'
Ink _FILL
Bar X+1,Y+1 To X+WIDTH-1,Y+HEIGHT-1
'
Gr Writing 0
Ink _INK
Text X_TEXT-LE/2,Y_TEXT,TEX$
Gr Writing 1
'
Set Zone _ZONENUMBER,X,Y To X+WIDTH,Y+HEIGHT
'
End Proc
Procedure _3D_INFO_TEXT[X,Y,WIDTH,HEIGHT,TEX$,_FILL,_INK]
'
'
'
LE=Text Length(TEX$)
X_TEXT=X+WIDTH/2
Y_TEXT=Y+HEIGHT/2+3
'
'
HILIGHT=1
SHADOW=2
'
'
Ink HILIGHT
Draw X,Y To X+WIDTH,Y
Draw X,Y To X,Y+HEIGHT
'
Ink SHADOW
Draw X+WIDTH,Y+1 To X+WIDTH,Y+HEIGHT
Draw X+WIDTH,Y+HEIGHT To X,Y+HEIGHT
'
'
HILIGHT=2
SHADOW=1
'
'
Ink HILIGHT
Draw X+1,Y+1 To X+WIDTH-1,Y+1
Draw X+1,Y+1 To X+1,Y+HEIGHT-1
'
Ink SHADOW
Draw X+WIDTH-1,Y To X+WIDTH-1,Y+HEIGHT-1
Draw X+WIDTH-1,Y+HEIGHT-1 To X-1,Y+HEIGHT-1
'
Ink _FILL
Bar X+2,Y+2 To X+WIDTH-2,Y+HEIGHT-2
'
Gr Writing 0
Ink _INK
Text X_TEXT-LE/2,Y_TEXT,TEX$
Gr Writing 1
'
End Proc
Procedure _3D_METER[X,Y,WIDTH,HEIGHT,_VALUE,FCOL,BCOL]
'
'
Set Pattern 0
Gr Writing 1
'
LE=Text Length(TEX$)
X_TEXT=X+WIDTH/2
Y_TEXT=Y+HEIGHT/2+3
'
'
HILIGHT=1
SHADOW=2
'
'
Ink HILIGHT
Draw X,Y To X+WIDTH,Y
Draw X,Y To X,Y+HEIGHT
'
Ink SHADOW
Draw X+WIDTH,Y+1 To X+WIDTH,Y+HEIGHT
Draw X+WIDTH,Y+HEIGHT To X,Y+HEIGHT
'
'
HILIGHT=2
SHADOW=1
'
'
Ink HILIGHT
Draw X+1,Y+1 To X+WIDTH-1,Y+1
Draw X+1,Y+1 To X+1,Y+HEIGHT-1
'
Ink SHADOW
Draw X+WIDTH-1,Y To X+WIDTH-1,Y+HEIGHT-1
Draw X+WIDTH-1,Y+HEIGHT-1 To X-1,Y+HEIGHT-1
'
Ink BCOL
Bar X+2,Y+2 To X+WIDTH-2,Y+HEIGHT-2
'
'
If _VALUE+X<X+(WIDTH-5) and _VALUE>0
Ink FCOL
Bar X+2,Y+2 To X+2+_VALUE,Y+HEIGHT-2
Else
Ink FCOL
Bar X+2,Y+2 To X+WIDTH-3,Y+HEIGHT-2
End If
'
'
End Proc
Procedure _HOR_SLIDER_TEMPO[_ZONENUMBER,X,Y,WIDTH,HEIGHT,IN_OUT,_FILL,_INK,_TEMPO,_STEP]
'
Screen 4
'
If IN_OUT=0
HILIGHT=2
SHADOW=1
End If
'
'
If IN_OUT=1
HILIGHT=1
SHADOW=2
End If
'
'
Ink HILIGHT
Draw X,Y To X+WIDTH-1,Y
Draw X,Y To X,Y+HEIGHT-1
'
Ink SHADOW
Draw X+WIDTH,Y To X+WIDTH,Y+HEIGHT
Draw X+WIDTH,Y+HEIGHT To X,Y+HEIGHT
'
Ink _FILL
Bar X+1,Y+1 To X+WIDTH-1,Y+HEIGHT-1
'
If X+_TEMPO<X Screen(4,X Mouse) and _TEMPO<51 and Mouse Zone=10
Add _TEMPO,_STEP
End If
'
If X+_TEMPO>X Screen(4,X Mouse) and _TEMPO>1 and Mouse Zone=10
Add _TEMPO,-_STEP
End If
'
Ink SHADOW
Draw X+_TEMPO,Y+1 To X+_TEMPO+WIDTH/10,Y+1
Draw X+_TEMPO,Y+1 To X+_TEMPO,Y+HEIGHT-1
'
Ink HILIGHT
Draw X+_TEMPO+WIDTH/10,Y+1 To X+_TEMPO+WIDTH/10,Y+HEIGHT-1
Draw X+_TEMPO+WIDTH/10,Y+HEIGHT-1 To X+_TEMPO,Y+HEIGHT-1
'
Ink _INK
Bar X+_TEMPO+1,Y+2 To X+_TEMPO+WIDTH/10-1,Y+HEIGHT-2
Wait Vbl
'
Set Zone _ZONENUMBER,X,Y To X+WIDTH,Y+HEIGHT
'
' Wait 2
'
End Proc
Procedure _TUNE[_ZONENUMBER,X,Y,WIDTH,HEIGHT,IN_OUT,_FILL,_INK,_TUNE,_STEP]
'
Screen 4
'
If IN_OUT=0
HILIGHT=2
SHADOW=1
End If
'
'
If IN_OUT=1
HILIGHT=1
SHADOW=2
End If
'
'
Ink HILIGHT
Draw X,Y To X+WIDTH-1,Y
Draw X,Y To X,Y+HEIGHT-1
'
Ink SHADOW
Draw X+WIDTH,Y To X+WIDTH,Y+HEIGHT
Draw X+WIDTH,Y+HEIGHT To X,Y+HEIGHT
'
Ink _FILL
Bar X+1,Y+1 To X+WIDTH-1,Y+HEIGHT-1
'
If X+_TUNE<X Screen(4,X Mouse) and _TUNE<51 and Mouse Zone=12
Add _TUNE,_STEP
End If
'
If X+_TUNE>X Screen(4,X Mouse) and _TUNE>1 and Mouse Zone=12
Add _TUNE,-_STEP
End If
'
Ink SHADOW
Draw X+_TUNE,Y+1 To X+_TUNE+WIDTH/10,Y+1
Draw X+_TUNE,Y+1 To X+_TUNE,Y+HEIGHT-1
'
Ink HILIGHT
Draw X+_TUNE+WIDTH/10,Y+1 To X+_TUNE+WIDTH/10,Y+HEIGHT-1
Draw X+_TUNE+WIDTH/10,Y+HEIGHT-1 To X+_TUNE,Y+HEIGHT-1
'
Ink _INK
Bar X+_TUNE+1,Y+2 To X+_TUNE+WIDTH/10-1,Y+HEIGHT-2
Wait Vbl
'
Set Zone _ZONENUMBER,X,Y To X+WIDTH,Y+HEIGHT
'
' Wait 2
'
End Proc
Procedure _HOR_SLIDER_METRO[_ZONENUMBER,X,Y,WIDTH,HEIGHT,IN_OUT,_FILL,_INK,METRO,_STEP]
'
Screen 4
'
If IN_OUT=0
HILIGHT=2
SHADOW=1
End If
'
'
If IN_OUT=1
HILIGHT=1
SHADOW=2
End If
'
'
Ink HILIGHT
Draw X,Y To X+WIDTH-1,Y
Draw X,Y To X,Y+HEIGHT-1
'
Ink SHADOW
Draw X+WIDTH,Y To X+WIDTH,Y+HEIGHT
Draw X+WIDTH,Y+HEIGHT To X,Y+HEIGHT
'
Ink _FILL
Bar X+1,Y+1 To X+WIDTH-1,Y+HEIGHT-1
'
If X+METRO<X Screen(4,X Mouse) and METRO<160 and Mouse Zone=40
Add METRO,_STEP
End If
'
If X+METRO>X Screen(4,X Mouse) and METRO>1 and Mouse Zone=40
Add METRO,-_STEP
End If
'
Ink SHADOW
Draw X+METRO,Y+1 To X+METRO+WIDTH/10,Y+1
Draw X+METRO,Y+1 To X+METRO,Y+HEIGHT-1
'
Ink HILIGHT
Draw X+METRO+WIDTH/10,Y+1 To X+METRO+WIDTH/10,Y+HEIGHT-1
Draw X+METRO+WIDTH/10,Y+HEIGHT-1 To X+METRO,Y+HEIGHT-1
'
Ink _INK
Bar X+METRO+1,Y+2 To X+METRO+WIDTH/10-1,Y+HEIGHT-2
Wait Vbl
'
Set Zone _ZONENUMBER,X,Y To X+WIDTH,Y+HEIGHT
'
' Wait 2
'
End Proc
Procedure _VOL_1[_ZONENUMBER,X,Y,WIDTH,HEIGHT,IN_OUT,_FILL,_INK,_V_1,_STEP]
'
Screen 4
'
If IN_OUT=0
HILIGHT=2
SHADOW=1
End If
'
'
If IN_OUT=1
HILIGHT=1
SHADOW=2
End If
'
'
Ink HILIGHT
Draw X,Y To X+WIDTH-1,Y
Draw X,Y To X,Y+HEIGHT-1
'
Ink SHADOW
Draw X+WIDTH,Y To X+WIDTH,Y+HEIGHT
Draw X+WIDTH,Y+HEIGHT To X,Y+HEIGHT
'
Ink _FILL
Bar X+1,Y+1 To X+WIDTH-1,Y+HEIGHT-1
'
If X+_V_1<X Screen(4,X Mouse) and _V_1<51 and Mouse Zone=34
Add _V_1,_STEP
End If
'
If X+_V_1>X Screen(4,X Mouse) and _V_1>1 and Mouse Zone=34
Add _V_1,-_STEP
End If
'
Ink SHADOW
Draw X+_V_1,Y+1 To X+_V_1+WIDTH/10,Y+1
Draw X+_V_1,Y+1 To X+_V_1,Y+HEIGHT-1
'
Ink HILIGHT
Draw X+_V_1+WIDTH/10,Y+1 To X+_V_1+WIDTH/10,Y+HEIGHT-1
Draw X+_V_1+WIDTH/10,Y+HEIGHT-1 To X+_V_1,Y+HEIGHT-1
'
Ink _INK
Bar X+_V_1+1,Y+2 To X+_V_1+WIDTH/10-1,Y+HEIGHT-2
Wait Vbl
'
Set Zone _ZONENUMBER,X,Y To X+WIDTH,Y+HEIGHT
'
' Wait 2
'
End Proc
Procedure _VOL_2[_ZONENUMBER,X,Y,WIDTH,HEIGHT,IN_OUT,_FILL,_INK,_V_2,_STEP]
'
Screen 4
'
If IN_OUT=0
HILIGHT=2
SHADOW=1
End If
'
'
If IN_OUT=1
HILIGHT=1
SHADOW=2
End If
'
'
Ink HILIGHT
Draw X,Y To X+WIDTH-1,Y
Draw X,Y To X,Y+HEIGHT-1
'
Ink SHADOW
Draw X+WIDTH,Y To X+WIDTH,Y+HEIGHT
Draw X+WIDTH,Y+HEIGHT To X,Y+HEIGHT
'
Ink _FILL
Bar X+1,Y+1 To X+WIDTH-1,Y+HEIGHT-1
'
If X+_V_2<X Screen(4,X Mouse) and _V_2<51 and Mouse Zone=35
Add _V_2,_STEP
End If
'
If X+_V_2>X Screen(4,X Mouse) and _V_2>1 and Mouse Zone=35
Add _V_2,-_STEP
End If
'
Ink SHADOW
Draw X+_V_2,Y+1 To X+_V_2+WIDTH/10,Y+1
Draw X+_V_2,Y+1 To X+_V_2,Y+HEIGHT-1
'
Ink HILIGHT
Draw X+_V_2+WIDTH/10,Y+1 To X+_V_2+WIDTH/10,Y+HEIGHT-1
Draw X+_V_2+WIDTH/10,Y+HEIGHT-1 To X+_V_2,Y+HEIGHT-1
'
Ink _INK
Bar X+_V_2+1,Y+2 To X+_V_2+WIDTH/10-1,Y+HEIGHT-2
Wait Vbl
'
Set Zone _ZONENUMBER,X,Y To X+WIDTH,Y+HEIGHT
'
' Wait 2
'
End Proc
Procedure _VOL_3[_ZONENUMBER,X,Y,WIDTH,HEIGHT,IN_OUT,_FILL,_INK,_V_3,_STEP]
'
Screen 4
'
If IN_OUT=0
HILIGHT=2
SHADOW=1
End If
'
'
If IN_OUT=1
HILIGHT=1
SHADOW=2
End If
'
'
Ink HILIGHT
Draw X,Y To X+WIDTH-1,Y
Draw X,Y To X,Y+HEIGHT-1
'
Ink SHADOW
Draw X+WIDTH,Y To X+WIDTH,Y+HEIGHT
Draw X+WIDTH,Y+HEIGHT To X,Y+HEIGHT
'
Ink _FILL
Bar X+1,Y+1 To X+WIDTH-1,Y+HEIGHT-1
'
If X+_V_3<X Screen(4,X Mouse) and _V_3<51 and Mouse Zone=36
Add _V_3,_STEP
End If
'
If X+_V_3>X Screen(4,X Mouse) and _V_3>1 and Mouse Zone=36
Add _V_3,-_STEP
End If
'
Ink SHADOW
Draw X+_V_3,Y+1 To X+_V_3+WIDTH/10,Y+1
Draw X+_V_3,Y+1 To X+_V_3,Y+HEIGHT-1
'
Ink HILIGHT
Draw X+_V_3+WIDTH/10,Y+1 To X+_V_3+WIDTH/10,Y+HEIGHT-1
Draw X+_V_3+WIDTH/10,Y+HEIGHT-1 To X+_V_3,Y+HEIGHT-1
'
Ink _INK
Bar X+_V_3+1,Y+2 To X+_V_3+WIDTH/10-1,Y+HEIGHT-2
Wait Vbl
'
Set Zone _ZONENUMBER,X,Y To X+WIDTH,Y+HEIGHT
'
' Wait 2
'
End Proc
Procedure _VOL_4[_ZONENUMBER,X,Y,WIDTH,HEIGHT,IN_OUT,_FILL,_INK,_V_4,_STEP]
'
Screen 4
'
If IN_OUT=0
HILIGHT=2
SHADOW=1
End If
'
'
If IN_OUT=1
HILIGHT=1
SHADOW=2
End If
'
'
Ink HILIGHT
Draw X,Y To X+WIDTH-1,Y
Draw X,Y To X,Y+HEIGHT-1
'
Ink SHADOW
Draw X+WIDTH,Y To X+WIDTH,Y+HEIGHT
Draw X+WIDTH,Y+HEIGHT To X,Y+HEIGHT
'
Ink _FILL
Bar X+1,Y+1 To X+WIDTH-1,Y+HEIGHT-1
'
If X+_V_4<X Screen(4,X Mouse) and _V_4<51 and Mouse Zone=37
Add _V_4,_STEP
End If
'
If X+_V_4>X Screen(4,X Mouse) and _V_4>1 and Mouse Zone=37
Add _V_4,-_STEP
End If
'
Ink SHADOW
Draw X+_V_4,Y+1 To X+_V_4+WIDTH/10,Y+1
Draw X+_V_4,Y+1 To X+_V_4,Y+HEIGHT-1
'
Ink HILIGHT
Draw X+_V_4+WIDTH/10,Y+1 To X+_V_4+WIDTH/10,Y+HEIGHT-1
Draw X+_V_4+WIDTH/10,Y+HEIGHT-1 To X+_V_4,Y+HEIGHT-1
'
Ink _INK
Bar X+_V_4+1,Y+2 To X+_V_4+WIDTH/10-1,Y+HEIGHT-2
Wait Vbl
'
Set Zone _ZONENUMBER,X,Y To X+WIDTH,Y+HEIGHT
'
' Wait 2
'
End Proc
Procedure _PLAY[_TEMPO]
'
Volume %1000,_V_1+12
Volume %100,_V_2+12
Volume %10,_V_3+12
Volume %1,_V_4+12
'
Do
'
Screen 4
M=Mouse Zone
'
If SCORE_POS>Start(8)+Length(8)-80 and _LOOP_FLAG=1
Screen 4
SCORE_POS=Start(8)+4
POSITION=0
End If
'
'
If SCORE_POS>Start(8)+Length(8)-80
Screen 4
_3D_BUTTON[4,350,2,60,10,1,"PLAY",3,0]
_3D_BUTTON[1,140,2,60,10,0,"STOP",4,0]
_PLAY_FLAG=0
_UPDATE[SCORE_POS]
MESSAGE[" End of score reached,no loop! "]
Wait 50
Screen 4
Pop Proc
End If
'
If Mouse Key=1 and M=1 and _PAUSE_FLAG=0
_3D_BUTTON[1,140,2,60,10,0,"STOP",4,0]
_3D_BUTTON[4,350,2,60,10,1,"PLAY",3,0]
_PLAY_FLAG=0
_UPDATE[SCORE_POS]
MESSAGE[" Stop playing score! "]
Wait 50
Screen 4
Pop Proc
End If
'
'
RT1=Peek(SCORE_POS)
RT2=Peek(SCORE_POS+1)
RT3=Peek(SCORE_POS+2)
RT4=Peek(SCORE_POS+3)
'
If RT1>0 and TRACK_1 : Sam Play %1000,RT1,10000+(_TUNE*160) : End If
If RT2>0 and TRACK_2 : Sam Play %100,RT2,10000+(_TUNE*160) : End If
If RT3>0 and TRACK_3 : Sam Play %10,RT3,10000+(_TUNE*160) : End If
If RT4>0 and TRACK_4 : Sam Play %1,RT4,10000+(_TUNE*160) : End If
'
'
If Mouse Key=1 and M=2 and _PLAY_FLAG=1
Screen 4
_PAUSE
_UPDATE[SCORE_POS]
Wait 20
End If
'
While _PAUSE_FLAG=1
Screen 4
If Mouse Key=1 and Mouse Zone=2
_PAUSE
_UPDATE[SCORE_POS]
Wait 20
End If
Wend
'
DELAY=(51-_TEMPO)*400
For _DELAY=0 To DELAY
Next _DELAY
'
Add SCORE_POS,4
Add POSITION,1
'
If _SCROLL_FLAG=1
_UPDATE[SCORE_POS]
End If
'
Loop
'
End Proc
Procedure _GET_SAMPLE
'
'
If Mouse Key=0
MESSAGE[" Pick sample mode now active! "]
End If
'
'
X=X Screen(2,X Mouse)/32
Y=Y Screen(2,Y Mouse+5)/16
'
If Mouse Key=1 and X<Length(2)/2 and Y>0
Screen 2
_3D_DISPLAY[0,11,639,15,1,3]
'
I=2
For XP=0 To 640 Step 32
If I<Length(2)/2+2
Paste Icon XP,11,I
End If
Inc I
Next XP
'
Paste Icon X*32,Y*16-5,X+Length(2)/2+2
_SAMPLE=X+1
Sam Play %1000,_SAMPLE,10000+(_TUNE*160)
Wait 20
End If
'
'
End Proc
Procedure MENU
'
Screen 4
'
M=Mouse Zone
Volume 63
'
If Mouse Key=0
MESSAGE[" Waiting for user input! "]
End If
'
If Mouse Key=1 and M=3 and SCORE_POS>Start(8)+4 and _PLAY_FLAG=0
_3D_BUTTON[3,280,2,60,10,0,"REW",4,0]
Add SCORE_POS,-4
Add POSITION,-1
_UPDATE[SCORE_POS]
Screen 4
_3D_BUTTON[3,280,2,60,10,1,"REW",3,0]
MESSAGE[" <<< Rewinding score "]
End If
'
If Mouse Key=1 and M=4 and _PAUSE_FLAG=0 and SCORE_POS<Start(8)+Length(8)-79
_PLAY_FLAG=1
_3D_BUTTON[4,350,2,60,10,0,"PLAY",4,0]
_3D_BUTTON[1,140,2,60,10,1,"STOP",3,0]
MESSAGE[" > Score is now playing > "]
_PLAY[_TEMPO]
Wait 20
End If
'
If Mouse Key=1 and M=5 and SCORE_POS<Start(8)+Length(8)-79 and _PLAY_FLAG=0
_3D_BUTTON[5,420,2,60,10,0,"FRW",4,0]
Add SCORE_POS,4
Add POSITION,1
_UPDATE[SCORE_POS]
Screen 4
_3D_BUTTON[5,420,2,60,10,1,"FRW",3,0]
MESSAGE[" Forwarding score >>> "]
End If
'
If Mouse Key=1 and M=6
_TRACK_1
Wait 20
End If
'
If Mouse Key=1 and M=7
_TRACK_2
Wait 20
End If
'
If Mouse Key=1 and M=8
_TRACK_3
Wait 20
End If
'
If Mouse Key=1 and M=9
_TRACK_4
Wait 20
End If
'
If Mouse Key=1 and M=10
_HOR_SLIDER_TEMPO[10,106,31,60,8,0,4,3,_TEMPO,1]
Poke(Start(8)),_TEMPO
MESSAGE[" Adjusting score tempo! "]
End If
'
'
If Mouse Key=1 and M=12
_TUNE[12,106,54,60,8,0,4,3,_TUNE,1]
MESSAGE[" Tuning drum samples! "]
End If
'
If Mouse Key=1 and M=14 and SCORE_POS>Start(8)+4 and _PLAY_FLAG=0 and _PAUSE_FLAG=0
_3D_BUTTON[14,2,2,60,10,0,"START",4,0]
SCORE_POS=Start(8)+4
POSITION=0
_UPDATE[SCORE_POS]
MESSAGE[" Returning to start of score! "]
Screen 4
Wait 30
_3D_BUTTON[14,2,2,60,10,1,"START",3,0]
End If
'
If Mouse Key=1 and M=15 and SCORE_POS<Start(8)+Length(8)-79 and _PLAY_FLAG=0 and _PAUSE_FLAG=0
_3D_BUTTON[15,71,2,60,10,0,"END",4,0]
SCORE_POS=Start(8)+(Length(8)-76)
POSITION=(Length(8)-77)/4
_UPDATE[SCORE_POS]
MESSAGE[" Jump to the end of score! "]
Wait 30
Screen 4
_3D_BUTTON[15,71,2,60,10,1,"END",3,0]
End If
'
If Mouse Key=1 and M=16
_3D_BUTTON[16,488,2,45,10,0,"SWAP",4,0]
MESSAGE[" Swap a sample in the score! "]
_SWAP
Screen 4
_3D_BUTTON[16,488,2,45,10,1,"SWAP",3,0]
Wait 50
End If
'
If Mouse Key=1 and M=17
_LOOP
Wait 50
End If
'
If Mouse Key=1 and M=18
_3D_BUTTON[18,174,18,60,10,0,"CUT",4,0]
'
MESSAGE[" Cut a block from the score! "]
_CUT
Screen 4
_3D_BUTTON[18,174,18,60,10,1,"CUT",3,0]
Wait 50
End If
'
If Mouse Key=1 and M=19
_3D_BUTTON[19,244,18,60,10,0,"COPY",4,0]
MESSAGE[" Copy a block from the score! "]
_COPY
Screen 4
_3D_BUTTON[19,244,18,60,10,1,"COPY",3,0]
Wait 50
End If
'
If Mouse Key=1 and M=20 and Length(9)>0
_3D_BUTTON[20,314,18,60,10,0,"PASTE",4,0]
MESSAGE["Paste a block from the buffer!"]
_PASTE
Screen 4
_3D_BUTTON[20,314,18,60,10,1,"PASTE",3,0]
Wait 50
End If
'
If Mouse Key=1 and M=21
_3D_BUTTON[21,384,18,60,10,0,"C BLOCK",4,0]
MESSAGE["Clear a block from the score! "]
_CLEAR_BLOCK
Screen 4
_3D_BUTTON[21,384,18,60,10,1,"C BLOCK",3,0]
Wait 50
End If
'
If Mouse Key=1 and M=22
_3D_BUTTON[22,454,18,60,10,0,"C SCORE",4,0]
MESSAGE[" Clear the whole score! "]
_CLEAR_SCORE
Screen 4
_3D_BUTTON[22,454,18,60,10,1,"C SCORE",3,0]
Wait 50
End If
'
If Mouse Key=1 and M=23
_3D_BUTTON[23,174,34,60,10,0,"L KIT",4,0]
MESSAGE["Load a new drum kit from disk!"]
_LOAD_KIT
Screen 4
_3D_BUTTON[23,174,34,60,10,1,"L KIT",3,0]
Wait 50
End If
'
If Mouse Key=1 and M=24
_3D_BUTTON[24,174,50,60,10,0,"ADD",4,0]
MESSAGE[" Add to the score length! "]
_ADD[4]
Wait 20
Screen 4
_3D_BUTTON[24,174,50,60,10,1,"ADD",3,0]
Screen 0
_3D_METER[30,85,240,10,Length(8)/72,6,4]
Screen 4
End If
'
If Mouse Key=2 and M=24
_3D_BUTTON[24,174,50,60,10,0,"ADD",4,0]
MESSAGE[" Add to the score length! "]
_ADD[72]
Wait 20
Screen 4
_3D_BUTTON[24,174,50,60,10,1,"ADD",3,0]
Screen 0
_3D_METER[30,85,240,10,Length(8)/72,6,4]
Screen 4
End If
'
If Mouse Key=1 and M=25
_3D_BUTTON[25,244,34,60,10,0,"L SCORE",4,0]
MESSAGE[" Load a score from the disk! "]
_LOAD_SCORE
Screen 4
_3D_BUTTON[25,244,34,60,10,1,"L SCORE",3,0]
Wait 50
End If
'
If Mouse Key=1 and M=26
_3D_BUTTON[26,244,50,60,10,0,"S SCORE",4,0]
MESSAGE[" Save a score to the disk! "]
_SAVE_SCORE
Screen 4
_3D_BUTTON[26,244,50,60,10,1,"S SCORE",3,0]
Wait 50
End If
'
'
If Mouse Key=1 and M=27
_3D_BUTTON[27,314,34,60,10,0,"L MOD",4,0]
MESSAGE[" Load a module from disk! "]
_LOAD_MODULE
Screen 4
_3D_BUTTON[27,314,34,60,10,1,"L MOD",3,0]
Wait 50
End If
'
If Mouse Key=1 and M=28
_3D_BUTTON[28,314,50,60,10,0,"S MOD",4,0]
MESSAGE[" Save a module to disk! "]
_SAVE_MODULE
Screen 4
_3D_BUTTON[28,314,50,60,10,1,"S MOD",3,0]
Wait 50
End If
'
If Mouse Key=1 and M=29
_3D_BUTTON[29,384,34,60,10,0,"L CUT",4,0]
MESSAGE[" Load a cut from disk! "]
_LOAD_BUFFER
Screen 4
_3D_BUTTON[29,384,34,60,10,1,"L CUT",3,0]
Wait 50
End If
'
If Mouse Key=1 and M=30 and Length(9)>0
_3D_BUTTON[30,384,50,60,10,0,"S CUT",4,0]
MESSAGE[" Save cut to disk! "]
_SAVE_BUFFER
Screen 4
_3D_BUTTON[30,384,50,60,10,1,"S CUT",3,0]
Wait 50
End If
'
If Mouse Key=1 and M=31
_3D_BUTTON[31,454,34,60,10,0,"PADS",4,0]
Wait 10
_JAM
Screen 4
_3D_BUTTON[31,454,34,60,10,1,"PADS",3,0]
Wait 30
End If
'
If Mouse Key=1 and M=32
_SCROLL
Wait 30
Screen 4
End If
'
If Mouse Key=1 and M=33
_FILTER
Wait 30
End If
'
'
If Mouse Key=1 and M=34
_VOL_1[34,35,20,60,8,0,4,3,_V_1,1]
MESSAGE[" Adjusting track one's volume! "]
End If
'
If Mouse Key=1 and M=35
_VOL_2[35,35,31,60,8,0,4,3,_V_2,1]
MESSAGE[" Adjusting track two's volume! "]
End If
'
If Mouse Key=1 and M=36
_VOL_3[36,35,42,60,8,0,4,3,_V_3,1]
MESSAGE["Adjusting track three's volume!"]
End If
'
If Mouse Key=1 and M=37
_VOL_4[37,35,53,60,8,0,4,3,_V_4,1]
MESSAGE[" Adjusting track four's volume!"]
End If
'
If Mouse Key=1 and M>37 and M<43
_MEMORY_BUTTONS
End If
'
If Mouse Key=1 and M=43
_STORE
End If
'
If Mouse Key=1 and M=44
_GOTO
End If
'
If Mouse Key=1 and M=45
_LAST
End If
'
End Proc
Procedure _EDIT
'
'
If Mouse Key=0
MESSAGE[" Editing mode now active! "]
End If
'
_UPDATE[SCORE_POS]
'
X=X Screen(3,X Mouse)/32-1
Y=Y Screen(3,Y Mouse)/16-1
'
PLACE=SCORE_POS+(Y)+(X*4)
'
If Mouse Key=1 and X>-1 and X<18 and Y>-1 and Y<4 and PLACE<Start(8)+Length(8)-76
Sam Play %1000,_SAMPLE,10000+(_TUNE*160)
Poke(PLACE),_SAMPLE
_UPDATE[SCORE_POS]
LAST_EDITED=SCORE_POS
LAST_POS=POSITION
Wait 10
End If
'
PLACE=SCORE_POS+(Y)+(X*4)
'
If Mouse Key=2 and X>-1 and X<18 and Y>-1 and Y<4 and PLACE<Start(8)+Length(8)-76
If Peek(PLACE)>0
Sam Play %1000,Peek(PLACE),10000+(_TUNE*160)
End If
Poke(PLACE),0
_UPDATE[SCORE_POS]
LAST_EDITED=SCORE_POS
LAST_POS=POSITION
Wait 10
End If
'
End Proc
Procedure DUMMY
End Proc
Procedure _PAUSE
'
_PAUSE_FLAG=1-_PAUSE_FLAG
'
If _PAUSE_FLAG=0
_3D_BUTTON[2,210,2,60,10,1,"PAUSE",3,0]
MESSAGE[" > Score is now playing > "]
End If
'
If _PAUSE_FLAG=1
_3D_BUTTON[2,210,2,60,10,0,"PAUSE",4,0]
MESSAGE[" Pause now active! "]
End If
'
End Proc
Procedure _CENTRE_TEXT[Y,TEX$]
'
LE=Text Length(TEX$)/2
'
Ink 3,3
Bar 1,Y-6 To 635,Y+1
Ink 0,3
'
Text 320-LE,Y,TEX$
'
End Proc
Procedure _CENTRE_TEXT2[Y,TEX$]
'
LE=Text Length(TEX$)/2
'
Ink 0,3
'
Text 320-LE,Y,TEX$
'
End Proc
Procedure MESSAGE[TEX$]
'
Screen 4
'
LE=Text Length(TEX$)/2
Ink 1,4
Text 320-LE,77,TEX$
'
End Proc
Procedure _ZEROS[NUMBER]
'
NUMBER$=Str$(NUMBER)
NUMBER$=Mid$(NUMBER$,2)
NUMBER$=Right$("000000"+NUMBER$,6)
'
End Proc
Procedure _TRACK_1
'
TRACK_1=1-TRACK_1
'
If TRACK_1=0
_3D_BUTTON[6,20,19,10,10,1,"X",3,0]
MESSAGE[" Track one is now inactive! "]
Wait 30
End If
'
If TRACK_1=1
_3D_BUTTON[6,20,19,10,10,0,"",4,0]
MESSAGE[" Track one is now active! "]
Wait 30
End If
'
_UPDATE[SCORE_POS]
'
End Proc
Procedure _TRACK_2
'
TRACK_2=1-TRACK_2
'
If TRACK_2=0
_3D_BUTTON[7,20,30,10,10,1,"X",3,0]
MESSAGE[" Track two is now inactive! "]
Wait 30
End If
'
If TRACK_2=1
_3D_BUTTON[7,20,30,10,10,0,"",4,0]
MESSAGE[" Track two is now active! "]
Wait 30
End If
'
_UPDATE[SCORE_POS]
'
End Proc
Procedure _TRACK_3
'
TRACK_3=1-TRACK_3
'
If TRACK_3=0
_3D_BUTTON[8,20,41,10,10,1,"X",3,0]
MESSAGE[" Track three is now inactive! "]
Wait 30
End If
'
If TRACK_3=1
_3D_BUTTON[8,20,41,10,10,0,"",4,0]
MESSAGE[" Track three is now active! "]
Wait 30
End If
'
_UPDATE[SCORE_POS]
'
End Proc
Procedure _TRACK_4
'
TRACK_4=1-TRACK_4
'
If TRACK_4=0
_3D_BUTTON[9,20,52,10,10,1,"X",3,0]
MESSAGE[" Track four is now inactive! "]
Wait 30
End If
'
If TRACK_4=1
_3D_BUTTON[9,20,52,10,10,0,"",4,0]
MESSAGE[" Track four is now active! "]
Wait 30
End If
'
_UPDATE[SCORE_POS]
'
End Proc
Procedure _LOOP
'
_LOOP_FLAG=1-_LOOP_FLAG
'
If _LOOP_FLAG=0
_3D_BUTTON[17,541,2,45,10,1,"LOOP",3,0]
MESSAGE["Score looping is now inactive! "]
End If
'
If _LOOP_FLAG=1
_3D_BUTTON[17,541,2,45,10,0,"ON",4,0]
MESSAGE[" Score looping is now active! "]
End If
'
Poke(Start(8)+2),_LOOP_FLAG
'
End Proc
Procedure _FILTER
'
_FILTER_FLAG=1-_FILTER_FLAG
'
If _FILTER_FLAG=0
_3D_BUTTON[33,593,2,45,10,1,"FILT",3,0]
Led On
MESSAGE[" Filter is now inactive! "]
End If
'
If _FILTER_FLAG=1
_3D_BUTTON[33,593,2,45,10,0,"ON",4,0]
Led Off
MESSAGE[" Filter is now active! "]
End If
'
End Proc
Procedure _CUT
'
Screen 3
'
'*********************************
' GET START OF BLOCK
'*********************************
'
Repeat
X=X Screen(3,X Mouse)/32-1
YI=Y Screen(3,Y Mouse)/16-1
Y=1
PLACE=SCORE_POS+(Y)+(X*4)
STORE_X1=PLACE-1
X1=X
Y1=Y
Until Mouse Click=1 and X>-1 and X<18 and YI>-1 and YI<4
'
'
If PLACE>Start(8)+Length(8)-76
Pop Proc
End If
'
'*********************************
' GET END OF BLOCK
'*********************************
'
Screen 0
Get Block 2,0,15,640,65
Ink 6,0
Set Pattern 2
Gr Writing 0
'
Repeat
'
X=X Screen(3,X Mouse)/32-1
YI=Y Screen(3,Y Mouse)/16-1
Y=4
PLACE=SCORE_POS+(Y)+(X*4)
If X>X1-1 and X<18 and PLACE<Start(8)+Length(8)-72
STORE_X2=PLACE-1
'
If TRACK_1=1
Bar X1*32+32,Y1*16 To X*32+64,Y1*16+14
End If
'
If TRACK_2=1
Bar X1*32+32,Y1*16+16 To X*32+64,Y1*16+30
End If
'
If TRACK_3=1
Bar X1*32+32,Y1*16+32 To X*32+64,Y1*16+46
End If
'
If TRACK_4=1
Bar X1*32+32,Y1*16+48 To X*32+64,Y1*16+62
End If
''
Screen Copy 0,30,15,610,100 To Logic(3),30,15
'
Put Block 2
'
Screen Swap
Wait Vbl
End If
Until Mouse Click=1 and X>-1 and X<18 and YI>-1 and YI<4
'
Gr Writing 1
Set Pattern 0
Screen 4
'
Get Block 1,0,0,640,119
'
_DARKEN[4,0,0,640,119]
'
_3D_DISPLAY[200,20,240,42,1,6]
_3D_DISPLAY[205,22,230,10,0,3]
_3D_DISPLAY[205,34,230,26,0,3]
'
_CENTRE_TEXT2[30,"CUT BLOCK?"]
'
_3D_BUTTON[40,220,43,60,10,1,"YES",3,0]
_3D_BUTTON[41,360,43,60,10,1,"NO",3,0]
'
Do
'
M=Mouse Zone
'
If Mouse Key=1 and M=41
_3D_BUTTON[41,360,43,60,10,0,"NO",4,0]
Wait 10
_UPDATE[SCORE_POS]
Screen 4
Put Block 1
Del Block 1
Pop Proc
End If
'
If Mouse Key=1 and M=40
_3D_BUTTON[40,220,43,60,10,0,"YES",4,0]
Wait 10
'
'*************************************
'RESERVE BUFFER (LENGTH OF BLOCK ONLY)
'*************************************
'
_BUFFER_LENGTH=0
'
For COUNT=STORE_X1 To STORE_X2
Inc _BUFFER_LENGTH
Next COUNT
'
Reserve As Chip Work 9,_BUFFER_LENGTH
'
EXTRA=0
'
For POS=Start(9) To Start(9)+_BUFFER_LENGTH
Poke(POS),Peek(STORE_X1+EXTRA)
Inc EXTRA
Next POS
'
If TRACK_1=1
'
For POS=STORE_X1 To STORE_X2-3 Step 4
Poke(POS),0
Next POS
'
End If
'
If TRACK_2=1
'
For POS=STORE_X1+1 To STORE_X2-2 Step 4
Poke(POS),0
Next POS
'
End If
'
'
If TRACK_3=1
'
For POS=STORE_X1+2 To STORE_X2-1 Step 4
Poke(POS),0
Next POS
'
End If
'
If TRACK_4=1
'
For POS=STORE_X1+3 To STORE_X2 Step 4
Poke(POS),0
Next POS
'
End If
'
'
'
_UPDATE[SCORE_POS]
'
Screen 4
Put Block 1
Wait 5
Del Block 1
Del Block 2
Pop Proc
End If
'
Loop
'
End Proc
Procedure _COPY
'
Screen 3
'
'*********************************
' GET START OF BLOCK
'*********************************
'
Repeat
X=X Screen(3,X Mouse)/32-1
YI=Y Screen(3,Y Mouse)/16-1
Y=1
PLACE=SCORE_POS+(Y)+(X*4)
STORE_X1=PLACE-1
X1=X
Y1=Y
Until Mouse Click=1 and X>-1 and X<18 and YI>-1 and YI<4
'
If PLACE>Start(8)+Length(8)-76
Pop Proc
End If
'
'*********************************
' GET END OF BLOCK
'*********************************
'
Screen 0
Get Block 1,0,15,640,65
Ink 5,0
Set Pattern 2
Gr Writing 0
Repeat
'
X=X Screen(3,X Mouse)/32-1
YI=Y Screen(3,Y Mouse)/16-1
Y=4
PLACE=SCORE_POS+(Y)+(X*4)
If X>X1-1 and X<18 and PLACE<Start(8)+Length(8)-72
STORE_X2=PLACE-1
'
If TRACK_1=1
Bar X1*32+32,Y1*16 To X*32+64,Y1*16+14
End If
'
If TRACK_2=1
Bar X1*32+32,Y1*16+16 To X*32+64,Y1*16+30
End If
'
If TRACK_3=1
Bar X1*32+32,Y1*16+32 To X*32+64,Y1*16+46
End If
'
If TRACK_4=1
Bar X1*32+32,Y1*16+48 To X*32+64,Y1*16+62
End If
''
Screen Copy 0,30,15,610,100 To Logic(3),30,15
'
Put Block 1
'
Screen Swap
Wait Vbl
End If
Until Mouse Click=1 and X>-1 and X<18 and YI>-1 and YI<4
'
Gr Writing 1
Set Pattern 0
Screen 4
'
'*************************************
'RESERVE BUFFER (LENGTH OF BLOCK ONLY)
'*************************************
'
_BUFFER_LENGTH=0
'
For COUNT=STORE_X1 To STORE_X2
Inc _BUFFER_LENGTH
Next COUNT
'
Reserve As Chip Work 9,_BUFFER_LENGTH
'
'*************************************
' COPY BLOCK INTO BUFFER
'*************************************
'
EXTRA=0
'
For POS=Start(9) To Start(9)+_BUFFER_LENGTH
Poke(POS),Peek(STORE_X1+EXTRA)
Inc EXTRA
Next POS
'
_UPDATE[SCORE_POS]
Del Block 1
'
End Proc
Procedure _PASTE
'
'*********************************
' GET START OF BLOCK
'*********************************
'
Repeat
X=X Screen(3,X Mouse)/32-1
YI=Y Screen(3,Y Mouse)/16-1
Y=1
PLACE=SCORE_POS+(Y)+(X*4)
STORE_X1=PLACE-1
Until Mouse Click=1 and X>-1 and X<18 and YI>-1 and YI<4
'
'*************************************
' COPY BLOCK FROM BUFFER
'*************************************
'
EXTRA=0
'
If TRACK_1=1
For POS=STORE_X1 To STORE_X1+Length(9)-4 Step 4
If POS<Start(8)+Length(8)-76
Poke(POS),Peek(Start(9)+EXTRA)
Add EXTRA,4
End If
Next POS
End If
'
EXTRA=1
'
If TRACK_2=1
For POS=STORE_X1+1 To STORE_X1+Length(9)-3 Step 4
If POS<Start(8)+Length(8)-76
Poke(POS),Peek(Start(9)+EXTRA)
Add EXTRA,4
End If
Next POS
End If
'
'
EXTRA=2
'
If TRACK_3=1
For POS=STORE_X1+2 To STORE_X1+Length(9)-2 Step 4
If POS<Start(8)+Length(8)-76
Poke(POS),Peek(Start(9)+EXTRA)
Add EXTRA,4
End If
Next POS
End If
'
EXTRA=3
'
If TRACK_4=1
For POS=STORE_X1+3 To STORE_X1+Length(9)-1 Step 4
If POS<Start(8)+Length(8)-76
Poke(POS),Peek(Start(9)+EXTRA)
Add EXTRA,4
End If
Next POS
End If
'
'
_UPDATE[SCORE_POS]
'
End Proc
Procedure _CLEAR_BLOCK
'
Screen 3
'
'*********************************
' GET START OF BLOCK
'*********************************
'
Repeat
X=X Screen(3,X Mouse)/32-1
YI=Y Screen(3,Y Mouse)/16-1
Y=1
PLACE=SCORE_POS+(Y)+(X*4)
STORE_X1=PLACE-1
X1=X
Y1=Y
Until Mouse Click=1 and X>-1 and X<18 and YI>-1 and YI<4
'
If PLACE>Start(8)+Length(8)-76
Pop Proc
End If
'
'*********************************
' GET END OF BLOCK
'*********************************
Screen 0
Get Block 1,0,15,640,65
Ink 6,0
Set Pattern 2
Gr Writing 0
'
Repeat
'
X=X Screen(3,X Mouse)/32-1
YI=Y Screen(3,Y Mouse)/16-1
Y=4
PLACE=SCORE_POS+(Y)+(X*4)
If X>X1-1 and X<18 and PLACE<Start(8)+Length(8)-72
STORE_X2=PLACE-1
'
If TRACK_1=1
Bar X1*32+32,Y1*16 To X*32+64,Y1*16+14
End If
'
If TRACK_2=1
Bar X1*32+32,Y1*16+16 To X*32+64,Y1*16+30
End If
'
If TRACK_3=1
Bar X1*32+32,Y1*16+32 To X*32+64,Y1*16+46
End If
'
If TRACK_4=1
Bar X1*32+32,Y1*16+48 To X*32+64,Y1*16+62
End If
''
Screen Copy 0,30,15,610,100 To Logic(3),30,15
'
Put Block 1
'
Screen Swap
Wait Vbl
End If
Until Mouse Click=1 and X>-1 and X<18 and YI>-1 and YI<4
'
Gr Writing 1
Set Pattern 0
Screen 4
'
'
Get Block 2,0,0,640,119
'
_DARKEN[4,0,0,640,119]
'
_3D_DISPLAY[200,20,240,42,1,6]
_3D_DISPLAY[205,22,230,10,0,3]
_3D_DISPLAY[205,34,230,26,0,3]
'
_CENTRE_TEXT2[30,"CLEAR BLOCK?"]
'
_3D_BUTTON[40,220,43,60,10,1,"YES",3,0]
_3D_BUTTON[41,360,43,60,10,1,"NO",3,0]
'
Do
'
M=Mouse Zone
'
If Mouse Key=1 and M=41
_3D_BUTTON[41,360,43,60,10,0,"NO",4,0]
Wait 10
_UPDATE[SCORE_POS]
Screen 4
Put Block 2
Del Block 2
Pop Proc
End If
'
If Mouse Key=1 and M=40
_3D_BUTTON[40,220,43,60,10,0,"YES",4,0]
Wait 10
'
If TRACK_1=1
'
For POS=STORE_X1 To STORE_X2-3 Step 4
Poke(POS),0
Next POS
'
End If
'
'
If TRACK_2=1
'
For POS=STORE_X1+1 To STORE_X2-2 Step 4
Poke(POS),0
Next POS
'
End If
'
'
If TRACK_3=1
'
For POS=STORE_X1+2 To STORE_X2-1 Step 4
Poke(POS),0
Next POS
'
End If
'
If TRACK_4=1
'
For POS=STORE_X1+3 To STORE_X2 Step 4
Poke(POS),0
Next POS
'
End If
'
'
_UPDATE[SCORE_POS]
Del Block 1
Screen 4
Put Block 2
Wait 5
Del Block 2
Pop Proc
End If
'
Loop
End Proc
Procedure _CLEAR_SCORE
'
Screen 4
'
Get Block 1,0,0,640,119
'
_DARKEN[4,0,0,640,119]
'
_3D_DISPLAY[200,20,240,42,1,6]
_3D_DISPLAY[205,22,230,10,0,3]
_3D_DISPLAY[205,34,230,26,0,3]
'
_CENTRE_TEXT2[30,"CLEAR SCORE?"]
'
_3D_BUTTON[40,220,43,60,10,1,"YES",3,0]
_3D_BUTTON[41,360,43,60,10,1,"NO",3,0]
'
Do
'
M=Mouse Zone
'
If Mouse Key=1 and M=41
_3D_BUTTON[41,360,43,60,10,0,"NO",4,0]
Wait 10
Put Block 1
Del Block 1
Pop Proc
End If
'
If Mouse Key=1 and M=40
_3D_BUTTON[40,220,43,60,10,0,"YES",4,0]
Wait 10
Screen 0
'
_CENTRE_TEXT[10,"SCORE:"+FILE$]
Wait Vbl
'
Reserve As Chip Work 8,152
Poke(Start(8)),_TEMPO
Poke(Start(8)+1),_VOLUME
Poke(Start(8)+2),_LOOP_FLAG
SCORE_POS=Start(8)+4
POSITION=0
MEM_1=SCORE_POS
MEM_2=SCORE_POS
MEM_3=SCORE_POS
MEM_4=SCORE_POS
MEM_5=SCORE_POS
MEM_1_1=0
MEM_2_2=0
MEM_3_3=0
MEM_4_4=0
MEM_5_5=0
LAST_EDITED=SCORE_POS
LAST_POS=0
'
Screen 0
_3D_METER[30,85,240,10,Length(8)/72,6,4]
Screen 4
'
_UPDATE[SCORE_POS]
Screen 4
Put Block 1
Del Block 1
Pop Proc
End If
'
Loop
'
End Proc
Procedure _ABOUT
'
Screen 0
'
_CENTRE_TEXT[10,"SCORE:"+FILE$]
_3D_DISPLAY[30,15,578,65,0,3]
'
_CENTRE_TEXT2[24,"SONIC DRUM KIT VERSION "+VERSION$]
_CENTRE_TEXT2[32,"---------------------------"]
_CENTRE_TEXT2[42,"WELCOME TO THE SONIC DRUM KIT,I HOPE THAT YOU ENJOY USING IT"]
_CENTRE_TEXT2[52,"I WILL BE PRODUCING SOME EXTRA DRUM KIT DISKS IN THE FUTURE"]
_CENTRE_TEXT2[62,"SO AS TO EXPAND THE RANGE OF SOUNDS AVAILABLE TO YOU"]
_CENTRE_TEXT2[74,"CLICK LEFT MOUSE BUTTON"]
'
Screen Copy 0,30,15,610,100 To Logic(3),30,15
Screen Swap
Wait Vbl
'
Wait 50
'
Repeat : Until Mouse Click
'
_3D_DISPLAY[30,15,578,65,0,3]
'
_CENTRE_TEXT2[24,"GET IN CONTACT WITH ME!!!!"]
_CENTRE_TEXT2[32,"--------------------------"]
_CENTRE_TEXT2[42,"MALCOLM LAVERY"]
_CENTRE_TEXT2[52,"20 SHAKESPEARE AV,ORGILL,EGREMONT"]
_CENTRE_TEXT2[62,"CUMBRIA,CA22 2HF,ENGLAND"]
_CENTRE_TEXT2[74,"CLICK LEFT MOUSE BUTTON"]
'
Screen Copy 0,30,15,610,100 To Logic(3),30,15
Screen Swap
Wait Vbl
'
Wait 50
'
Repeat : Until Mouse Click
Wait 5
_3D_DISPLAY[30,15,578,65,0,3]
'
_CENTRE_TEXT2[24,"PLEASE DO NOT COPY/SPREAD!"]
_CENTRE_TEXT2[32,"--------------------------"]
_CENTRE_TEXT2[42,"THIS PROGRAM IS NOT PUBLIC DOMAIN!"]
_CENTRE_TEXT2[52,"THIS PROGRAM HAS TOOK ME A LONG TIME TO WRITE"]
_CENTRE_TEXT2[62,"SO PLEASE DO NOT COPY OR SPREAD IT ABOUT,THANKS"]
_CENTRE_TEXT2[74,"CLICK LEFT MOUSE BUTTON"]
'
Screen Copy 0,30,15,610,100 To Logic(3),30,15
Screen Swap
Wait Vbl
'
Wait 50
'
Repeat : Until Mouse Click
Wait 5
'
_UPDATE[SCORE_POS]
'
End Proc
Procedure _SAVE_SCORE
'
'
F$=Fsel$("SDK:scores/*.SCR","","SAVE A SCORE","")
'
'
If F$="" Then Pop Proc
'
Bsave F$,Start(8) To Start(8)+Length(8)
'
'
End Proc
Procedure _LOAD_SCORE
'
F$=Fsel$("SDK:scores/*.SCR","","LOAD A SCORE","")
'
If Exist(F$)
If Upper$(Right$(F$,4))=".SCR"
Open In 1,F$
L=Lof(1)
Close 1
Erase 8
Reserve As Chip Work 8,L
Bload F$,Start(8)
SCORE_POS=Start(8)+4
POSITION=0
MEM_1=SCORE_POS
MEM_2=SCORE_POS
MEM_3=SCORE_POS
MEM_4=SCORE_POS
MEM_5=SCORE_POS
MEM_1_1=0
MEM_2_2=0
MEM_3_3=0
MEM_4_4=0
MEM_5_5=0
LAST_EDITED=SCORE_POS
LAST_POS=0
Screen 0
'
_CENTRE_TEXT[10,"SCORE:"+F$]
_3D_METER[30,85,240,10,Length(8)/72,6,4]
Wait Vbl
'
_UPDATE[SCORE_POS]
End If
End If
'
End Proc
Procedure _LOAD_MODULE
'
F$=Fsel$("SDK:modules/*.MOD","","LOAD A MODULE","")
'
If Exist(F$)
If Upper$(Right$(F$,4))=".MOD"
Erase 2
Erase 5
Erase 8
Load F$
_TEMPO=Peek(Start(8))
_LOOP_FLAG=Peek(Start(8)+2)
SCORE_POS=Start(8)+4
POSITION=0
MEM_1=SCORE_POS
MEM_2=SCORE_POS
MEM_3=SCORE_POS
MEM_4=SCORE_POS
MEM_5=SCORE_POS
MEM_1_1=0
MEM_2_2=0
MEM_3_3=0
MEM_4_4=0
MEM_5_5=0
LAST_EDITED=SCORE_POS
LAST_POS=0
_SAMPLE=1
Screen 0
_CENTRE_TEXT[10,"SCORE:"+F$]
'
_3D_METER[30,85,240,10,Length(8)/72,6,4]
'
Wait Vbl
'
_UPDATE[SCORE_POS]
Screen 2
_3D_DISPLAY[0,11,639,15,1,3]
'
I=2
For X=0 To 640 Step 32
If I<Length(2)/2+2
If I=2
Paste Icon X,11,I+Length(2)/2
Else
Paste Icon X,11,I
End If
End If
Inc I
Next X
'
Screen 4
'
'
If _LOOP_FLAG=0
_3D_BUTTON[17,541,2,45,10,1,"LOOP",3,0]
End If
'
If _LOOP_FLAG=1
_3D_BUTTON[17,541,2,45,10,0,"ON",4,0]
End If
'
_HOR_SLIDER_TEMPO[10,106,31,60,8,0,4,3,_TEMPO,1]
'
End If
End If
'
End Proc
Procedure _SAVE_MODULE
'
'
F$=Fsel$("SDK:modules/*.MOD","","LOAD A MODULE","")
'
'
If F$="" Then Pop Proc
'
Save F$
'
'
End Proc
Procedure _SAVE_BUFFER
'
'
F$=Fsel$("SDK:cuts/*.CUT","","SAVE A CUT","")
'
If F$="" Then Pop Proc
'
Bsave F$,Start(9) To Start(9)+Length(9)
'
'
End Proc
Procedure _LOAD_BUFFER
'
F$=Fsel$("SDK:cuts/*.CUT","","LOAD A CUT","")
'
If Exist(F$)
If Upper$(Right$(F$,4))=".CUT"
Open In 1,F$
L=Lof(1)
Close 1
Erase 9
Reserve As Chip Work 9,L
Bload F$,Start(9)
'
End If
End If
'
End Proc
Procedure _LOAD_KIT
'
F$=Fsel$("SDK:Drum_Kits/*.KIT","","LOAD A DRUM KIT","")
'
If Exist(F$)
'' If Upper$(Right$(F$,4))=".KIT"
Erase 2
Erase 5
Erase 8
Load F$
'
Reserve As Chip Work 8,1000
Poke(Start(8)),_TEMPO
Poke(Start(8)+1),_VOLUME
SCORE_POS=Start(8)+4
POSITION=0
MEM_1=SCORE_POS
MEM_2=SCORE_POS
MEM_3=SCORE_POS
MEM_4=SCORE_POS
MEM_5=SCORE_POS
MEM_1_1=0
MEM_2_2=0
MEM_3_3=0
MEM_4_4=0
MEM_5_5=0
LAST_EDITED=SCORE_POS
LAST_POS=0
PADS(1)=1
PADS(2)=1
PADS(3)=1
PADS(4)=1
PADS(5)=1
PADS(6)=1
'
KEYS$(1)=""
KEYS$(2)=""
KEYS$(3)=""
KEYS$(4)=""
KEYS$(5)=""
KEYS$(6)=""
'
_SAMPLE=1
'
Screen 0
_CENTRE_TEXT[10,"SCORE:"+FILE$]
_3D_METER[30,85,240,10,Length(8)/72,6,4]
Screen 4
'
_UPDATE[SCORE_POS]
Screen 2
_3D_DISPLAY[0,11,639,15,1,3]
'
I=2
For X=0 To 640 Step 32
If I<Length(2)/2+2
If I=2
Paste Icon X,11,I+Length(2)/2
Else
Paste Icon X,11,I
End If
End If
Inc I
Next X
'
End If
' End If
'
End Proc
Procedure _ADD[MUCH]
'
L=Length(8)
'
Reserve As Chip Work 10,L+MUCH
'
Copy Start(8),Start(8)+Length(8) To Start(10)
'
Reserve As Chip Work 8,Length(10)
Copy Start(10),Start(10)+Length(10) To Start(8)
Poke(Start(8)),_TEMPO
Poke(Start(8)+1),_VOLUME
Poke(Start(8)+2),_LOOP_FLAG
'
SCORE_POS=Start(8)+(Length(8)-76)
POSITION=(Length(8)-77)/4
_UPDATE[SCORE_POS]
'
Erase 10
'
End Proc
Procedure _SORRY
'
Screen 0
'
_3D_DISPLAY[30,15,578,65,0,3]
'
_CENTRE_TEXT2[40,"NOT IN THIS VERSION"]
_CENTRE_TEXT2[48,"*******************"]
_CENTRE_TEXT2[75,"CLICK LEFT MOUSE BUTTON"]
'
Screen Copy 0,30,15,610,100 To Logic(3),30,15
Screen Swap
Wait Vbl
'
Wait 5
'
Repeat : Until Mouse Click
'
_UPDATE[SCORE_POS]
'
End Proc
Procedure _SWAP
'
_SAMPLE_A=0
_SAMPLE_B=0
'
Screen 0
'
_3D_DISPLAY[160,20,320,50,1,3]
'
_CENTRE_TEXT2[30,"PICK A SAMPLE TO SWAP"]
'
Screen Copy 0,30,15,610,100 To Logic(3),30,15
Screen Swap
Wait Vbl
'
Wait 5
'
Screen 2
'
Repeat
X=X Screen(2,X Mouse)/32
Y=Y Screen(2,Y Mouse+5)/16
Until Mouse Key=1 and Scin(X Mouse,Y Mouse)=2 and X<Length(2)/2 and Y>0
'
_3D_DISPLAY[0,11,639,15,1,3]
I=2
For XP=0 To 640 Step 32
If I<Length(2)/2+2
Paste Icon XP,11,I
End If
Inc I
Next XP
Paste Icon X*32,Y*16-5,X+Length(2)/2+2
_SAMPLE=X+1
Sam Play %1000,_SAMPLE,14000
_SAMPLE_A=_SAMPLE
'
' '
Screen 0
'
_3D_DISPLAY[160,20,320,50,1,3]
'
_CENTRE_TEXT2[30,"SWAP SAMPLE"]
'
Paste Icon 256,38,_SAMPLE_A+1
'
_CENTRE_TEXT2[49,"TO"]
'
Screen Copy 0,30,15,610,100 To Logic(3),30,15
Screen Swap
Wait Vbl
'
Wait 50
'
Screen 2
'
Repeat
X=X Screen(2,X Mouse)/32
Y=Y Screen(2,Y Mouse+5)/16
Until Mouse Key=1 and Scin(X Mouse,Y Mouse)=2 and X<Length(2)/2 and Y>0
'
_3D_DISPLAY[0,11,639,15,1,3]
I=2
For XP=0 To 640 Step 32
If I<Length(2)/2+2
Paste Icon XP,11,I
End If
Inc I
Next XP
Paste Icon X*32,Y*16-5,X+Length(2)/2+2
_SAMPLE=X+1
Sam Play %1000,_SAMPLE,14000
_SAMPLE_B=_SAMPLE
'
Screen 0
'
_3D_DISPLAY[160,20,320,50,1,3]
'
_CENTRE_TEXT2[30,"SWAPING SAMPLES"]
'
Paste Icon 256,38,_SAMPLE_A+1
Paste Icon 350,38,_SAMPLE_B+1
'
_CENTRE_TEXT2[49,"TO"]
'
_CENTRE_TEXT2[66,"PLEASE WAIT"]
'
Screen Copy 0,30,15,610,100 To Logic(3),30,15
Screen Swap
Wait Vbl
'
If TRACK_1=1
For POS=Start(8)+4 To Start(8)+4+Length(8)-8 Step 4
If Peek(POS)=_SAMPLE_A
Poke(POS),_SAMPLE_B
End If
Next POS
End If
'
If TRACK_2=1
For POS=Start(8)+5 To Start(8)+4+Length(8)-7 Step 4
If Peek(POS)=_SAMPLE_A
Poke(POS),_SAMPLE_B
End If
Next POS
End If
'
If TRACK_3=1
For POS=Start(8)+6 To Start(8)+4+Length(8)-6 Step 4
If Peek(POS)=_SAMPLE_A
Poke(POS),_SAMPLE_B
End If
Next POS
End If
'
If TRACK_4=1
For POS=Start(8)+7 To Start(8)+4+Length(8)-5 Step 4
If Peek(POS)=_SAMPLE_A
Poke(POS),_SAMPLE_B
End If
Next POS
End If
'
Wait 100
'
_UPDATE[SCORE_POS]
'
End Proc
Procedure _QUIT
'
Screen 4
'
Get Block 1,0,0,640,70
'
_DARKEN[4,0,0,640,70]
'
_3D_DISPLAY[200,20,240,42,1,6]
_3D_DISPLAY[205,22,230,10,0,3]
_3D_DISPLAY[205,34,230,26,0,3]
'
_CENTRE_TEXT2[30,"REALLY QUIT?"]
'
_3D_BUTTON[40,220,43,60,10,1,"YES",3,0]
_3D_BUTTON[41,360,43,60,10,1,"NO",3,0]
'
Do
'
M=Mouse Zone
'
If Mouse Key=1 and M=41
_3D_BUTTON[41,360,43,60,10,0,"NO",4,0]
Wait 10
Put Block 1
Del Block 1
Pop Proc
End If
'
If Mouse Key=1 and M=40
_3D_BUTTON[40,220,43,60,10,0,"YES",4,0]
Wait 10
Erase All
Screen Close 0
Screen 2
Fade 1
Wait 20
Screen 3
Fade 1
Wait 20
Screen 4
Fade 1
Wait 20
End
Screen Close 2
Screen Close 3
Screen Close 4
End If
'
Loop
End Proc
Procedure _DARKEN[DES,X1,Y1,X2,Y2]
'
Screen DES
'
Ink 0,0
Gr Writing 0
Set Pattern 2
'
Bar X1,Y1 To X2,Y2
'
Gr Writing 1
Set Pattern 0
'
End Proc
Procedure _MEMORY_BUTTONS
'
If Mouse Zone=38 and Mouse Key=1
_3D_BUTTON[38,523,18,20,10,0,"M1",4,0]
_3D_BUTTON[39,546,18,20,10,1,"M2",3,0]
_3D_BUTTON[40,570,18,20,10,1,"M3",3,0]
_3D_BUTTON[41,594,18,20,10,1,"M4",3,0]
_3D_BUTTON[42,618,18,20,10,1,"M5",3,0]
MEM_FLAG1=1
MEM_FLAG2=0
MEM_FLAG3=0
MEM_FLAG4=0
MEM_FLAG5=0
MESSAGE[" Memory bank one! "]
End If
'
If Mouse Zone=39 and Mouse Key=1
_3D_BUTTON[38,523,18,20,10,1,"M1",3,0]
_3D_BUTTON[39,546,18,20,10,0,"M2",4,0]
_3D_BUTTON[40,570,18,20,10,1,"M3",3,0]
_3D_BUTTON[41,594,18,20,10,1,"M4",3,0]
_3D_BUTTON[42,618,18,20,10,1,"M5",3,0]
MEM_FLAG1=0
MEM_FLAG2=1
MEM_FLAG3=0
MEM_FLAG4=0
MEM_FLAG5=0
MESSAGE[" Memory bank two! "]
End If
'
If Mouse Zone=40 and Mouse Key=1
_3D_BUTTON[38,523,18,20,10,1,"M1",3,0]
_3D_BUTTON[39,546,18,20,10,1,"M2",3,0]
_3D_BUTTON[40,570,18,20,10,0,"M3",4,0]
_3D_BUTTON[41,594,18,20,10,1,"M4",3,0]
_3D_BUTTON[42,618,18,20,10,1,"M5",3,0]
MEM_FLAG1=0
MEM_FLAG2=0
MEM_FLAG3=1
MEM_FLAG4=0
MEM_FLAG5=0
MESSAGE[" Memory bank three! "]
End If
'
If Mouse Zone=41 and Mouse Key=1
_3D_BUTTON[38,523,18,20,10,1,"M1",3,0]
_3D_BUTTON[39,546,18,20,10,1,"M2",3,0]
_3D_BUTTON[40,570,18,20,10,1,"M3",3,0]
_3D_BUTTON[41,594,18,20,10,0,"M4",4,0]
_3D_BUTTON[42,618,18,20,10,1,"M5",3,0]
MEM_FLAG1=0
MEM_FLAG2=0
MEM_FLAG3=0
MEM_FLAG4=1
MEM_FLAG5=0
MESSAGE[" Memory bank four! "]
End If
'
If Mouse Zone=42 and Mouse Key=1
_3D_BUTTON[38,523,18,20,10,1,"M1",3,0]
_3D_BUTTON[39,546,18,20,10,1,"M2",3,0]
_3D_BUTTON[40,570,18,20,10,1,"M3",3,0]
_3D_BUTTON[41,594,18,20,10,1,"M4",3,0]
_3D_BUTTON[42,618,18,20,10,0,"M5",4,0]
MEM_FLAG1=0
MEM_FLAG2=0
MEM_FLAG3=0
MEM_FLAG4=0
MEM_FLAG5=1
MESSAGE[" Memory bank five! "]
End If
'
Wait 30
'
End Proc
Procedure _STORE
'
_3D_BUTTON[43,523,34,55,10,0,"STORE",4,0]
'
If MEM_FLAG1=1
MEM_1=SCORE_POS
MEM_1_1=POSITION
MESSAGE[" Storing position in bank one! "]
End If
'
If MEM_FLAG2=1
MEM_2=SCORE_POS
MEM_2_2=POSITION
MESSAGE[" Storing position in bank two! "]
End If
'
If MEM_FLAG3=1
MEM_3=SCORE_POS
MEM_3_3=POSITION
MESSAGE["Storing position in bank three!"]
End If
'
If MEM_FLAG4=1
MEM_4=SCORE_POS
MEM_4_4=POSITION
MESSAGE[" Storing position in bank four!"]
End If
'
If MEM_FLAG5=1
MEM_5=SCORE_POS
MEM_5_5=POSITION
MESSAGE[" Storing position in bank five!"]
End If
'
Wait 50
_3D_BUTTON[43,523,34,55,10,1,"STORE",3,0]
'
End Proc
Procedure _GOTO
'
_3D_BUTTON[44,582,34,55,10,0,"GOTO",4,0]
'
If MEM_FLAG1=1
SCORE_POS=MEM_1
POSITION=MEM_1_1
_UPDATE[SCORE_POS]
MESSAGE[" Goto position in bank one! "]
End If
'
If MEM_FLAG2=1
SCORE_POS=MEM_2
POSITION=MEM_2_2
_UPDATE[SCORE_POS]
MESSAGE[" Goto position in bank two! "]
End If
'
If MEM_FLAG3=1
SCORE_POS=MEM_3
POSITION=MEM_3_3
_UPDATE[SCORE_POS]
MESSAGE[" Goto position in bank three! "]
End If
'
If MEM_FLAG4=1
SCORE_POS=MEM_4
POSITION=MEM_4_4
_UPDATE[SCORE_POS]
MESSAGE[" Goto position in bank four! "]
End If
'
If MEM_FLAG5=1
SCORE_POS=MEM_5
POSITION=MEM_5_5
_UPDATE[SCORE_POS]
MESSAGE[" Goto position in bank five! "]
End If
'
Screen 4
'
'
Wait 50
_3D_BUTTON[44,582,34,55,10,1,"GOTO",3,0]
'
End Proc
Procedure _LAST
'
_3D_BUTTON[45,523,50,115,10,0,"LAST EDITED",4,0]
'
SCORE_POS=LAST_EDITED
'
POSITION=LAST_POS
_UPDATE[SCORE_POS]
MESSAGE[" Goto last edited position! "]
Screen 4
'
Wait 40
_3D_BUTTON[45,523,50,115,10,1,"LAST EDITED",3,0]
'
End Proc